import { getToken, setToken, removeToken } from '@/utils/auth'
import { newInfo, newDetailsInfo } from '@/api/user'
export default {
  namespaced: true,
  state: {
    // 优先取  getToken()这个函数的token 没有在取 ''
    token: getToken() || '',
    userInfo: {} // 保存请求回来员工的数据
  },
  // 保存 token 或者修改token
  mutations: {
    axiosToken(state, Token) {
      state.token = Token
      // 利用 Cookies 吧token存储本地做持久化
      setToken(Token)
    },
    // 删除token
    delToken(state) {
      state.token = ''
      removeToken()
    },
    // 保存 员工数据到  vuex
    updatedInfo(state, Info) {
      state.userInfo = Info
    },
    // 用来清空清空员工信息
    delInfo(state) {
      state.userInfo = {}
    }
  },
  actions: {
    async axiosInfo(context) {
      // 发送请求获取数 获取基本信息
      try {
        const res = await newInfo()
        // console.log(123)
        // console.log('res.data', res.data)
        // 获取员工的的详细信息
        const info = await newDetailsInfo(res.data.userId)
        // console.log('info', info)
        // 调用 mutations中的函数保存数据到vuex中
        // 这边使用展开运算符对 响应的数据拼接
        context.commit('updatedInfo', { ...res.data, ...info.data })
        // console.log('res.data.roles.menus该员工拥有的权限', res.data.roles.menus)
        return res.data.roles.menus
      } catch (error) {
        console.log(error)
      }
    }
  }
}

